package cn.heyige.backend.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.heyige.backend.entity.YaoCiDO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 爻辞Mapper接口
 */
public interface YaoCiMapper extends BaseMapper<YaoCiDO> {
    
    /**
     * 根据卦象ID查找所有爻辞
     * @param hexagramId 卦象ID
     * @return 爻辞列表
     */
    @Select("SELECT * FROM yao_ci WHERE hexagram_id = #{hexagramId}")
    List<YaoCiDO> findByHexagramId(@Param("hexagramId") Integer hexagramId);
    
    /**
     * 根据卦象ID和爻位查找爻辞
     * @param hexagramId 卦象ID
     * @param yaoPosition 爻位
     * @return 爻辞对象
     */
    @Select("SELECT * FROM yao_ci WHERE hexagram_id = #{hexagramId} AND yao_position = #{yaoPosition}")
    YaoCiDO findByHexagramIdAndYaoPosition(@Param("hexagramId") Integer hexagramId, @Param("yaoPosition") Integer yaoPosition);
    
    /**
     * 根据爻的性质查找爻辞
     * @param yaoNature 爻的性质（阴或阳）
     * @return 爻辞列表
     */
    @Select("SELECT * FROM yao_ci WHERE yao_nature = #{yaoNature}")
    List<YaoCiDO> findByYaoNature(@Param("yaoNature") String yaoNature);
    
    /**
     * 根据关键字搜索爻辞
     * @param keyword 关键字
     * @return 爻辞列表
     */
    @Select("SELECT * FROM yao_ci WHERE yao_ci_text LIKE CONCAT('%', #{keyword}, '%')")
    List<YaoCiDO> searchByKeyword(@Param("keyword") String keyword);
}